<?php
class Hg{
//	提供给外部的运行方法
	public static function Run(){
//		1、设置常量
			self::SetConst();
//		2、创建目录
			self::CreateDir();
//		3、加载必须文件
			self::LoadCore();
//		4、执行应用类
			App::Run();
			

	}
	/*
	 * 定义常量  设置目录 方便后续使用
	 */
	private static function SetConst(){
		$path = str_replace('\\','/',__FILE__); //转换路径 兼容不同系统
		define('Hg_PATH',dirname($path)); //定义框架目录
		
//		相对于Hg_PATH 的根目录
		define('CONFIG_PATH',Hg_PATH . '/Config');//配置目录
		define('EXTEND_PATH', Hg_PATH . '/Extend');//定义扩展	
			define('TOOL_PATH', EXTEND_PATH . '/Tool');//定义Tool目录  层级目录 相对于上级	
			define('ORG_PATH', EXTEND_PATH . '/Org');
		define('DATA_PATH',Hg_PATH . '/Data'); //data目录
			define('FONT_PATH', DATA_PATH . '/Font');  //字体目录	 层级目录 相对于上级		
			define('Images_PATH', DATA_PATH . '/Images');	
			define('Js_PATH', DATA_PATH . '/js');	
		define('LIB_PATH', Hg_PATH . '/Lib');//定义Lib目录		
			define('CORE_PATH', LIB_PATH . '/Core');//定义Core目录		层级目录 相对于上级	 
			define('FUNCTION_PATH', LIB_PATH . '/Function');//定义Function目录	  层级目录 相对于上级	
			
				
		define('ROOT_PATH', dirname(Hg_PATH));//定义项目根目录  用于 前台和后台用户目录配置		
		define('APP_PATH', ROOT_PATH . '/' . APP_NAME);//定义应用目录		
		define('APP_CONTROLLER_PATH', APP_PATH . '/Controller');//定义控制器目录		
		define('APP_VIEW_PATH', APP_PATH . '/View');//定义视图目录
		define('APP_TEMP_PATH', APP_PATH . '/Temp');	//临时目录
		define('APP_CACHE_PATH', APP_TEMP_PATH . '/Cache');	 //缓存目录
		define('APP_COMPILE_PATH', APP_TEMP_PATH . '/Compile');	//解析目录
		define('APP_PUBLIC_PATH', APP_VIEW_PATH . '/Public');//定义存放js,css,图片 Public目录		
		define('APP_CONFIG_PATH', APP_PATH . '/Config');//定义配置项目录		
		define('IS_POST', $_SERVER['REQUEST_METHOD'] == 'POST' ? true : false);//p($_SERVER);  //如果有post提交，IS_POST为真
}
	/*
	 * 创建用户文件夹
	 */
	private static function CreateDir(){
		$dirArr = array(
		APP_CONTROLLER_PATH,
		APP_VIEW_PATH,
		APP_PUBLIC_PATH,
		APP_CONFIG_PATH,
		APP_CACHE_PATH,
		APP_COMPILE_PATH	
		);
		foreach($dirArr as $v){
			is_dir($v) || mkdir($v,0777,true);
		}
	}
//	加载核心文件
	private static function LoadCore(){
		$coreArr = array(
		CORE_PATH . '/App.class.php',
		CORE_PATH . '/SmartyView.class.php',
		CORE_PATH . '/Controller.class.php',
		FUNCTION_PATH .'/functions.php'
		);
		foreach ($coreArr as $v){
			require_once $v;
		}
	}


	
	
	
	
	
}
Hg::Run();

?>
